#! /usr/bin/env python2
# -*- coding: utf-8 -*-

import logging
import os
import platform

from lab.calls.call import Call
from lab import tools

tools.configure_logging()

logging.info('node name: {}'.format(platform.node()))

run_log = open('run.log', 'w')
run_err = open('run.err', 'w')
redirects = {'stdout': run_log, 'stderr': run_err}

# Make sure we're in the run directory.
os.chdir(os.path.dirname(os.path.abspath(__file__)))

Call(['../../code-7ac25cf9542f/fast-downward.py', '--validate', '--overall-time-limit', '30m', '--overall-memory-limit', '3584M', '--overall-time-limit', '30m', '--overall-memory-limit', '3584M', 'domain.pddl', 'problem.pddl', '--search', 'astar(lmcut)'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='planner', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['rm', '-f', 'output.sas'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='remove-output-sas', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['../../exitcode-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='exitcode_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['../../translator-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='translator_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['../../single-search-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='single_search_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['../../planner-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='planner_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['../../simple-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='simple_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()


for f in [run_log, run_err]:
    f.close()
    if os.path.getsize(f.name) == 0:
        os.remove(f.name)
